#ifndef NLSATURATIONDESIGNER_H
#define NLSATURATIONDESIGNER_H

#include "NolinearDesignerBase.h"

#include "SimInterface/IConfigurable.h"

namespace Ui {
class NLSaturationDesigner;
}

class NLSaturationDesigner : public NonlinearDesignerBase
{
    Q_OBJECT
    
public:
    explicit NLSaturationDesigner(QWidget *parent = 0);
    ~NLSaturationDesigner();

    /**
        Wiąże obiekt algorytmu adaptacyjnego z tym widgetem.
        Zadaniem klasy implementującej jest odświeżenie interfejsu użytkownika
        po dołączeniu obiektu, tak by przedstawiał faktyczne ustawienia.
    */
    void attachModel(RafMat::SimInterface::IConfigurableSPtr ctrl);

    /**
        Zatwierdza zmiany w ustawieniach algorytmu.
        Metoda wywoływana po wciśnięciu odpowiedniego przycisku zatwierdzającego zmiany.
    */
    void applySettings();
    
private:
    Ui::NLSaturationDesigner *ui;

    RafMat::SimInterface::IConfigurableSPtr m_nlConf;
};

#endif // NLSATURATIONDESIGNER_H
